home *** CD-ROM | disk | FTP | other *** search
- #include <create.h>
- #include <ode.h>
-
- static const char* subclass_table_ODESolver[] =
- {
- "ForwadEulerODE",
- "RungeKutta4ODE",
- NULL
- };
- const char** hierODESolver () { return subclass_table_ODESolver; }
-
- static const char* subclass_table_ODESolverUDC[] =
- {
- "Oscillator",
- NULL
- };
- const char** hierODESolverUDC () { return subclass_table_ODESolverUDC; }
-
- ODESolver* createODESolver (const prm(ODESolver)& pm)
- {
- ODESolver* ptr = NULL;
- if (EQ(pm.method,ForwardEulerODE))
- ptr = new ForwardEulerODE (*pm.f);
- else if (EQ(pm.method,RungeKutta4ODE))
- ptr = new RungeKutta4ODE (*pm.f);
- else
- errorFP("createODESolver","Cannot make object of class %s",
- pm.method.chars());
- return ptr;
- }
-
- ODESolverUDC* createODESolverUDC (const String& problem)
- {
- ODESolverUDC* ptr = NULL;
- if (EQ(problem,Oscillator))
- ptr = new Oscillator();
- else
- errorFP("createODESolverUDC","Cannot make object of class %s",
- problem.chars());
- return ptr;
- }
-